package cn.fyl.basic.controller;

import cn.fyl.basic.util.FastDfsUtils;
import cn.fyl.basic.util.JsonResult;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

@RestController
@RequestMapping("/fastdfs")
public class fastDfsController {

    /**
     * 上传操作
     * @param file 文件
     * @return
     * @RequestPart 前端传入的是文件，就必须使用这个注解才能接收到
     * required = true 表示不能为空
     */
    @PostMapping
    public JsonResult upload(@RequestPart(value = "file",required = true)MultipartFile file){
        try {
            System.out.println("111111111111");
            // 获取文件绝对地址
            String originalFilename = file.getOriginalFilename();
            // 截取后缀 ，不要.
            String extName = originalFilename.substring(originalFilename.lastIndexOf(".") + 1);
            // 调用工具类  file.getBytes()将文件转成byte[]
            String filePath = FastDfsUtils.upload(file.getBytes(), extName);
            System.out.println(filePath);
            //将文件路径返回给前端
            return JsonResult.me().setResultObj(filePath);

        } catch (Exception e) {
            e.printStackTrace();
            return JsonResult.me().setMsg("上传失败");
        }

    }

    /**
     * 删除操作
     * @param
     * @return
     */

    @DeleteMapping
    public JsonResult delete(@RequestParam(value = "path",required = true) String path){
        try {
            // 处理前端传入的路径
            // 截取第一个/
            String pathTmp = path.substring(1);
            // 截取前面的组名
            String groupName = pathTmp.substring(0, pathTmp.indexOf("/"));
            // 截取组名后面的路径
            String fileName = pathTmp.substring(pathTmp.indexOf("/") + 1);
            System.out.println(groupName);
            System.out.println(fileName);

            // 调用删除
            FastDfsUtils.delete(groupName,fileName);
            return JsonResult.me();
        } catch (Exception e) {
            e.printStackTrace();
            return JsonResult.me().setMsg("删除失败");
        }
    }

}
